home *** CD-ROM | disk | FTP | other *** search
/ SGI ONC3 NFS v2 / SGI ONC3 NFS v2.iso / dist6.3 / nfs.idb / var / yp / make.script.z / make.script
Text File  |  1996-11-21  |  9KB  |  274 lines

  1. # make(1) script invoked by ypmake(1M).
  2. #
  3. #    @(#)make.script $Revision: 1.26 $"
  4.  
  5. # Do not change the definitions below -- put changes in
  6. # /etc/config/ypmaster.options (see ypmake(1M) for details).
  7.  
  8. DIR    =/etc
  9. DOM    =`domainname`
  10. NOPUSH    =""
  11. TOUCH    =touch
  12. PATH = /usr/bsd:/bin:/etc:/usr/bin:/usr/sbin:.:
  13. YPDIR = /var/yp
  14. YPDBDIR = $(YPDIR)/$(DOM)
  15. YPPUSH = yppush -v
  16. YPSET = ypset
  17. PWFILE =$(DIR)/passwd
  18. ALIASES = /etc/aliases
  19. SHELL = /bin/sh
  20. MAKEDBM=/usr/sbin/makedbm
  21. # Set the following variable to "-b" to have Sun NIS slave servers 
  22. # use the DNS resolver for hosts not in the current domain.
  23. INTERDOMAIN=
  24. REVNETGROUP=/usr/sbin/revnetgroup
  25. STDHOSTS=/usr/sbin/stdhosts
  26. MKNETID=/usr/sbin/mknetid
  27. MKALIAS=/usr/sbin/mkalias
  28.  
  29.  
  30. # Used by logging:
  31. DATEFMT=(%X %x)        # country-specific time & date format
  32. PUSHFMT=< pushed
  33. UPDATEFMT=> updated
  34.  
  35. # Trim comments and blanks
  36. TRIMPAT='s/\#.*//' -e 's/[     ]\{1,\}/ /g' -e 's/ *$$//' -e '/^$$/d'
  37.  
  38. # Generate data for a map by second field
  39. BYF2=$(TRIMPAT) -e 's/[^ ]* \([^ ]*\)/\1    &/'
  40.  
  41. # Generate data for a passwd by-name style map
  42. PWNAM='BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ { print $$1, $$0 }'
  43. # Generate data for a passwd by-number style map
  44. PWNUM='BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ { print $$3, $$0 }'
  45.  
  46.  
  47. # Optional: put commands to make your site's maps in local.make.script.
  48. # The first rule in this makefile should be similar to the "all" rule
  49. # below and it should depend on "all" to update the official maps.
  50. sinclude local.make.script
  51.  
  52. all: passwd group hosts ethers networks rpc services protocols \
  53.     netgroup aliases bootparams netid ypservers
  54.  
  55.  
  56. aliases bootparams ethers group hosts netgroup netid networks: $$@.time
  57. passwd protocols rpc services ypservers: $$@.time
  58.  
  59.  
  60. passwd.time: $(PWFILE)
  61.     $(TOUCH) $@
  62.     umask 077; awk $(PWNAM) $(PWFILE) \
  63.         | $(MAKEDBM) - $(YPDBDIR)/`ypmapname passwd.byname`
  64.     umask 077; awk $(PWNUM) $(PWFILE) \
  65.         | $(MAKEDBM) - $(YPDBDIR)/`ypmapname passwd.byuid`
  66.     date "+$(UPDATEFMT) passwd $(DATEFMT)"
  67.     if [ ! $(NOPUSH) ]; then \
  68.         $(YPPUSH) passwd.byname; \
  69.         $(YPPUSH) passwd.byuid; \
  70.         date "+$(PUSHFMT) passwd $(DATEFMT)"; \
  71.     fi
  72.  
  73. group.time: $(DIR)/group
  74.     $(TOUCH) $@
  75.     umask 077; awk $(PWNAM) $(DIR)/group \
  76.         | $(MAKEDBM) - $(YPDBDIR)/`ypmapname group.byname`
  77.     umask 077; awk $(PWNUM) $(DIR)/group \
  78.         | $(MAKEDBM) - $(YPDBDIR)/`ypmapname group.bygid`
  79.     date "+$(UPDATEFMT) group $(DATEFMT)"
  80.     if [ ! $(NOPUSH) ]; then \
  81.         $(YPPUSH) group.byname; \
  82.         $(YPPUSH) group.bygid; \
  83.         date "+$(PUSHFMT) group $(DATEFMT)"; \
  84.     fi
  85.  
  86. hosts.time: $(DIR)/hosts
  87.     $(TOUCH) $@
  88.     $(STDHOSTS) $(DIR)/hosts | \
  89.         awk '{for (i = 2; i <= NF; i++) print $$i, $$0}' \
  90.         | $(MAKEDBM) $(INTERDOMAIN) -l - $(YPDBDIR)/`ypmapname hosts.byname`
  91.     $(STDHOSTS) $(DIR)/hosts | \
  92.         awk 'BEGIN { OFS="\t"; } { print $$1, $$0 }' \
  93.         | $(MAKEDBM) $(INTERDOMAIN) - $(YPDBDIR)/`ypmapname hosts.byaddr`
  94.     date "+$(UPDATEFMT) hosts $(DATEFMT)"
  95.     if [ ! $(NOPUSH) ]; then \
  96.         $(YPPUSH) hosts.byname; \
  97.         $(YPPUSH) hosts.byaddr; \
  98.         date "+$(PUSHFMT) hosts $(DATEFMT)"; \
  99.     fi
  100.  
  101. ethers.time: $(DIR)/ethers
  102.     $(TOUCH) $@
  103.     sed -e $(TRIMPAT) -e 's/^0\([^:]\)/\1/' -e 's/:0\([^:]\)/:\1/g' \
  104.             -e 's/^\([^ ]*\)/& &/' $(DIR)/ethers \
  105.         | $(MAKEDBM) -l - $(YPDBDIR)/`ypmapname ethers.byaddr`
  106.     sed -e $(BYF2) $(DIR)/ethers \
  107.         | $(MAKEDBM) - $(YPDBDIR)/`ypmapname ethers.byname`
  108.     date "+$(UPDATEFMT) ethers $(DATEFMT)"
  109.     if [ ! $(NOPUSH) ]; then \
  110.         $(YPPUSH) ethers.byname; \
  111.         $(YPPUSH) ethers.byaddr; \
  112.         date "+$(PUSHFMT) ethers $(DATEFMT)"; \
  113.     fi
  114.  
  115. networks.time: $(DIR)/networks
  116.     $(TOUCH) $@
  117.     sed -e $(TRIMPAT) $(DIR)/networks \
  118.         | awk '{print $$1, $$0; for (i = 3;i <= NF;i++) print $$i,$$0}' \
  119.         | $(MAKEDBM) - $(YPDBDIR)/`ypmapname networks.byname`
  120.     sed -e $(BYF2) $(DIR)/networks \
  121.         | $(MAKEDBM) - $(YPDBDIR)/`ypmapname networks.byaddr`
  122.     date "+$(UPDATEFMT) networks $(DATEFMT)"
  123.     if [ ! $(NOPUSH) ]; then \
  124.         $(YPPUSH) networks.byname; \
  125.         $(YPPUSH) networks.byaddr; \
  126.         date "+$(PUSHFMT) networks $(DATEFMT)"; \
  127.     fi
  128.  
  129. services.time: $(DIR)/services
  130.     $(TOUCH) $@
  131.     sed -e $(BYF2) $(DIR)/services \
  132.         | $(MAKEDBM) - $(YPDBDIR)/`ypmapname services.byname`
  133.     date "+$(UPDATEFMT) services $(DATEFMT)"
  134.     if [ ! $(NOPUSH) ]; then \
  135.         $(YPPUSH) services.byname; \
  136.         date "+$(PUSHFMT) services $(DATEFMT)"; \
  137.     fi
  138.  
  139. rpc.time: $(DIR)/rpc
  140.     $(TOUCH) $@
  141.     sed -e $(BYF2) $(DIR)/rpc \
  142.         | $(MAKEDBM) - $(YPDBDIR)/`ypmapname rpc.bynumber`
  143.     date "+$(UPDATEFMT) rpc $(DATEFMT)"
  144.     if [ ! $(NOPUSH) ]; then \
  145.         $(YPPUSH) rpc.bynumber; \
  146.         date "+$(PUSHFMT) rpc $(DATEFMT)"; \
  147.     fi
  148.  
  149. protocols.time: $(DIR)/protocols
  150.     $(TOUCH) $@
  151.     sed -e $(BYF2) $(DIR)/protocols \
  152.         | $(MAKEDBM) - $(YPDBDIR)/`ypmapname protocols.bynumber`
  153.     sed -e $(TRIMPAT) $(DIR)/protocols \
  154.         | awk '{print $$1,$$0; for (i = 3;i <= NF;i++) print $$i, $$0}' \
  155.         | $(MAKEDBM) - $(YPDBDIR)/`ypmapname protocols.byname`
  156.     date "+$(UPDATEFMT) protocols $(DATEFMT)"
  157.     if [ ! $(NOPUSH) ]; then \
  158.         $(YPPUSH) protocols.byname; \
  159.         $(YPPUSH) protocols.bynumber; \
  160.         date "+$(PUSHFMT) protocols $(DATEFMT)"; \
  161.     fi
  162.  
  163. netgroup.time: $(DIR)/netgroup
  164.     $(TOUCH) $@
  165.     sed -e $(TRIMPAT) $(DIR)/netgroup \
  166.         | $(MAKEDBM) - $(YPDBDIR)/`ypmapname netgroup`
  167.     $(REVNETGROUP) -u < $(DIR)/netgroup \
  168.         | $(MAKEDBM) - $(YPDBDIR)/`ypmapname netgroup.byuser`
  169.     $(REVNETGROUP) -h < $(DIR)/netgroup \
  170.         | $(MAKEDBM) - $(YPDBDIR)/`ypmapname netgroup.byhost`
  171.     date "+$(UPDATEFMT) netgroup $(DATEFMT)"
  172.     if [ ! $(NOPUSH) ]; then \
  173.         $(YPPUSH) netgroup; \
  174.         $(YPPUSH) netgroup.byuser; \
  175.         $(YPPUSH) netgroup.byhost; \
  176.         date "+$(PUSHFMT) netgroup $(DATEFMT)"; \
  177.     fi
  178.  
  179. aliases.time: $(ALIASES)
  180.     $(TOUCH) $@
  181.     DBNM=$(YPDBDIR)/`ypmapname mail.aliases`; TEMP=$$DBNM.t; \
  182.         rm -f $$TEMP $$TEMP.dir $$TEMP.pag; cp $(ALIASES) $$TEMP; \
  183.         /usr/lib/sendmail -bi -oA$$TEMP; \
  184.         chmod og-w $$TEMP.dir $$TEMP.pag; \
  185.         mv -f $$TEMP.dir $$DBNM.dir; \
  186.         mv -f $$TEMP.pag $$DBNM.pag; \
  187.         rm -f $$TEMP
  188.     $(MKALIAS) $(YPDBDIR)/`ypmapname mail.aliases` \
  189.         $(YPDBDIR)/`ypmapname mail.byaddr`
  190.     date "+$(UPDATEFMT) aliases $(DATEFMT)"
  191.     if [ ! $(NOPUSH) ]; then \
  192.         $(YPPUSH) mail.aliases; \
  193.         $(YPPUSH) mail.byaddr; \
  194.         date "+$(PUSHFMT) aliases $(DATEFMT)"; \
  195.     fi
  196.  
  197. bootparams.time: $(DIR)/bootparams
  198.     $(TOUCH) $@
  199.     sed -e $(TRIMPAT) -e 's/^ //' -e 's/[^ ]\\$$/ \\/' $(DIR)/bootparams \
  200.         | $(MAKEDBM) - $(YPDBDIR)/bootparams
  201.     date "+$(UPDATEFMT) bootparams $(DATEFMT)"
  202.     if [ ! $(NOPUSH) ]; then \
  203.         $(YPPUSH) bootparams; \
  204.         date "+$(PUSHFMT) bootparams $(DATEFMT)"; \
  205.     fi
  206.  
  207.  
  208. netid.time: $(PWFILE) $(DIR)/group $(DIR)/hosts $(DIR)/netid
  209.     $(TOUCH) $@
  210.     $(MKNETID) -q -p $(PWFILE) -g $(DIR)/group -h $(DIR)/hosts \
  211.         -m $(DIR)/netid \
  212.         | $(MAKEDBM) - $(YPDBDIR)/netid.byname
  213.     date "+$(UPDATEFMT) netid $(DATEFMT)"
  214.     if [ ! $(NOPUSH) ]; then \
  215.         $(YPPUSH) netid.byname; \
  216.         date "+$(PUSHFMT) netid $(DATEFMT)"; \
  217.     fi
  218.  
  219. ypservers.time: $(YPDIR)/ypservers
  220.     $(TOUCH) $@
  221.     sed -e $(TRIMPAT) $(YPDIR)/ypservers | $(MAKEDBM) - $(YPDBDIR)/ypservers
  222.     date "+$(UPDATEFMT) ypservers $(DATEFMT)"
  223.     if [ ! $(NOPUSH) ]; then \
  224.         $(YPSET) `hostname`; \
  225.         $(YPPUSH) ypservers; \
  226.         date "+$(PUSHFMT) ypservers $(DATEFMT)"; \
  227.     fi
  228.  
  229.  
  230.  
  231. # not used by SGI
  232. group.adjunct passwd.adjunct netmasks: $$@.time
  233.  
  234.  
  235. c2secure:
  236.     -@if [ -f $(DIR)/security/passwd.adjunct ]; then \
  237.         make NOPUSH=$(NOPUSH) passwd.adjunct.time group.adjunct.time; \
  238.     fi
  239.  
  240. passwd.adjunct.time: $(DIR)/security/passwd.adjunct
  241.     $(TOUCH) $@
  242.     -@awk $(PWNAM) $(DIR)/security/passwd.adjunct  | \
  243.     $(MAKEDBM) -s - $(YPDIR)/passwd.adjunct.byname; \
  244.     chmod 600 $(YPDIR)/passwd.adjunct.byname.dir; \
  245.     chmod 600 $(YPDIR)/passwd.adjunct.byname.pag; \
  246.     date "+$(UPDATEFMT) passwd.adjunct $(DATEFMT)"; \
  247.     if [ ! $(NOPUSH) ]; then \
  248.         $(YPPUSH) passwd.adjunct.byname; \
  249.         date "+$(PUSHFMT) passwd.adjunct $(DATEFMT)"; \
  250.     fi
  251.  
  252. group.adjunct.time: $(DIR)/security/group.adjunct
  253.     $(TOUCH) $@
  254.     -@awk $(PWNAM) $(DIR)/security/group.adjunct  | \
  255.     $(MAKEDBM) -s - $(YPDIR)/group.adjunct.byname; \
  256.     chmod 600 $(YPDIR)/group.adjunct.byname.dir; \
  257.     chmod 600 $(YPDIR)/group.adjunct.byname.pag; \
  258.     date "+$(UPDATEFMT) group.adjunct $(DATEFMT)"; \
  259.     if [ ! $(NOPUSH) ]; then \
  260.         $(YPPUSH) group.adjunct.byname; \
  261.         date "+$(PUSHFMT) group.adjunct $(DATEFMT)"; \
  262.     fi
  263.  
  264. netmasks.time: $(DIR)/netmasks
  265.     $(TOUCH) $@
  266.     -@$(MAKEDBM) $(DIR)/netmasks $(YPDIR)/netmasks.byaddr; \
  267.     chmod 600 $(YPDIR)/netmasks.byaddr.dir; \
  268.     chmod 600 $(YPDIR)/netmasks.byaddr.pag; \
  269.     date "+$(UPDATEFMT) netmasks $(DATEFMT)"; \
  270.     if [ ! $(NOPUSH) ]; then \
  271.         $(YPPUSH) netmasks.byaddr; \
  272.         date "+$(PUSHFMT) netmasks $(DATEFMT)"; \
  273.     fi
  274.